package com.c2rusthub.service.mapper;

import com.c2rusthub.service.model.TranslatedTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface TranslatedTaskMapper {

    // 根据 cUrl 获取已完成的转译任务列表

    List<TranslatedTask> findTranslatedTasksByCUrl(String cUrl);

    // 根据 id 获取已完成的转译任务详情
    TranslatedTask findTranslatedTaskById(int id);

    // 查询已完成任务的数量
    @Select("SELECT COUNT(*) FROM t_translated")
    int getCompletedTaskCount();


    /**
     * 查询已完成转译表中 likes 数前十的数据
     *
     * @return likes 前十的数据列表
     */
    List<TranslatedTask> getTop10ByLikes();


    /**
     * 点赞任务
     *
     * @param id 任务ID
     */
    @Update("UPDATE t_translated SET likes = likes + 1 WHERE id = #{id}")
    void incrementLikes(@Param("id") Integer id);

    /**
     * 点踩任务
     *
     * @param id 任务ID
     */
    @Update("UPDATE t_translated SET diss = diss + 1 WHERE id = #{id}")
    void incrementDiss(@Param("id") Integer id);

    void insertTranslatedTask(TranslatedTask translatedTask);


}
